package com.example.spring.multi;

import com.example.spring.multi.aop.service.MyAopService;
import com.example.spring.multi.config.MyConfig;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author tomato
 * @ClassName MyTest
 * @description:
 * @date 2023年07月09日 15:27
 * @version: 1.0
 */

//测试类
public class MyTest {

    //正常测试
    @Test
    public void test01(){}

    //故意传入错误的参数测试(除法运算时分母不能为0，但强行这样做康康会怎么样)
    @Test
    public void test02(){}

    //故意传入错误的参数测试(除法运算时分母不能为0，但强行这样做康康会怎么样)
    @Test
    public void test03(){
        //通过配置类启动容器
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
        //用id取出业务逻辑类的bean
        MyAopService myAopService = (MyAopService) applicationContext.getBean("myAopService");
        //调用此bean的divide方法观察控制台的输出信息,其中传入的分母参数为 0
        try{
            //分母故意传个 0 康康会不会执行切面类的异常通知方法
            myAopService.divide(1, 0);
        }catch (Exception e){

        }
    }

    //正常测试
    @Test
    public void test04(){
        //通过配置类启动容器
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
        //用id取出业务逻辑类的bean
        MyAopService myAopService = (MyAopService) applicationContext.getBean("myAopService");
        //调用此bean的divide方法观察控制台的输出信息,其中传入的参数进行除法运算是正常的
        myAopService.divide(1, 1);
    }

    public static void main(String[] args) {
        String str = "hello world";
        String str1 = "hello world";
        System.out.println(str == str1);
        System.out.println("hello world" == str1);
        System.out.println(str.equals(str1));
        System.out.println("hello world".equals(str1));
        System.out.println(str.hashCode());
        System.out.println(str1.hashCode());
        System.out.println("hello world".hashCode());

    }
}


